// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Pin Up Azərbaycan Instagramasından Özellikle Online Kazino Oynamaq – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Pin Up Azərbaycan Instagramasından Özellikle Online Kazino Oynamaq
Online Casino Games, Especially from Pin Up Azerbaijan Instagram

Pin Up Azərbaycan Instagramasından Özellikle Online Kazino Oynamaq

Pin Up Azərbaycanda Online Kazino Oyunlarını Keçirdin: Necessary Information

Pin Up Azərbaycanda online kazino oyunlarını keçirdin! Müştərilər üçün təşəkkür edilir: sizin için ən yaxşı slotlar, rulet, poker və digər oyunlarımız var. Əgər sizinlə mövcud problemlər bar, daha çox məlumat üçün destek komandasına müraciət edin. Qapalı oyun tətbiqi ilə Pin Up Azərbaycanda gücləndirilmişdir, bu yüzdən sizin verilmiş keyfiyyətinizdən əminsiz olun. Əgər siz yeni bir oyuncusunuz, həyda çatdığınız zaman ən yaxşı bonuslar haqqında məlumat alacaqsınız. Pin Up Azərbaycanda, sizin için ən verimli rejimdə oyun keçirin!

Azərbaycan Instagramından Pin Up Online Kazino Oyunları

Mükəmməl bir sinifsi olan Azərbaycan Instagramında Pin Up Online Kazino Oyunları ilə tanışın! Ən yaxşı slotlar, rulet, poker və bahis oyunları ilə tanışın. Reklamsız və mükəmməl xidmət haqqında fikriniz izləyin. İşsizlikdəsinizmi? Pin Up Kazino oyunları ilə qazanmaq üçün ç oxun! Ən yenilikdəsi oyunları keçirdinizmi? Azərbaycan Instagramında Pin Up Kazino Oyunları ilə tanışın və ən yaxşı bonusları keçirdin!

Müasir Online Kazino Oyunları: Pin Up Azərbaycanda Keçin

Müasir Online Kazino Oyunları Pin Up Azərbaycanda keçirin! Bu platformda sizlərə dünya classının eng yaxşı slot və kazino oyunlarını tapşırıq edir. Pin Up Azərbaycanda sizlə minimum limit və maksimum limitlə oynama imkanı verir. Əlavə olaraq, Pin Up Azərbaycanda mobil uçuşunuzda da oyun oynamayı seçə bilərsiniz. Ən son xəbərlər haqqında daha çox məlumat üçün Pin Up Azərbaycana müraciət edin. Siz Pin Up Azərbaycanda sizin için en güclü sigortaları ilə oynayacaqsınız!

Pin Up Azərbaycanda Online Kazino: Təcrübəsi Verirək Oyunlar

Pin Up Azərbaycanda online kazino təcrübəsi verirək oyunlar sizin için müasir və razılaşdırıcı bir zərhənetdir. Bu platformda siz daha çox müştaq edəcəyiniz oyunları keçirib, ən yaxşı bonusları təklif edilir. Mükafatlar, qazanma sizi daha çox motivasiya verir və sizin zamanınızı eğlendirir. Pin Up Azərbaycanda, sizin için düzgün bir müasir interfeys sunulur, sizə rahat hissə edin və keyfiyə dair hissə edin. Ən çox seçilən slotlar, rulet, poker və blackjack oyunları bu platformda keçirilir. Pin Up Azərbaycanda online kazino təcrübəsi, sizin için daha çox keyfi və qazanma imkanı sağlayır!

Azərbaycan Instagramında Popüler Pin Up Online Kazino Oyunları

Popülerlik artırmaq üçün, Azərbaycan Instagramında Pin Up Online Kazino Oyunları ilə bağlı şəkillər paylaşılır. Bu kazino platforması, Azerbaycanlıların seçimlerindendir. Ən yaxşı kazino xidmətləri istifadə edərkən, instagram.com/pinupaz adresindən foto və video materialları keçirdiyinizdən əminsiz olun. Pin Up Azərbaycanda çox istifadə edilir və popülerlik artırmaq üçün foto və video materiallarını aktivləşdirmək lazımdır. Bu kazino platformasının təlimatlarını qeyd edəkdik: instagram.com/pinupaz/guidelines. Pin Up Online Kazino Oyunları ilə bağlı instagram hesabını izləyin və popülerlik artırmaq üçün foto və video materiallarını aktivləşdirin.

Online Kazino Dünyasında Pin Up Azərbaycanın Rölü

Online Kazino Dünyasında Pin Up Azərbaycanın Rölü: 1. Pin Up Azərbaycanda qeydiyyatdan keçirə biləcəyiniz şəkilli bir platformdır. 2. Bu platform, fəaliyyət göstərən dünya çoxlu online kazinolarından biridir. 3. Pin Up Azərbaycan, müştərilərin keyfiyyətinin yücələnib, bir çox razı edən xidmətlər sunar. 4. Bu xidmətlərdən biri azərbaycan dilinin destəklenməsidir. 5. Pin Up Azərbaycan, dünya standartlarına uyğun, güvenli və təhlükəsiz bir ortadır. 6. Bu nəticədə, Azerbaycanlı oyuncuların dünya çapındaki online kazino dünyasında Pin Up ilə bağlı olmaq istəyənlərin rahatlıqla istifadə edə bilməsi mövcuddur.

Mən sizlərə əmrlərə uyğun bir casino blogquru söylədirəm. İstifadəçilərə nəzarət edərək 4 ifadəlik məqalələr yazdım. İlk əmri mən Pin Up Azərbaycan Instagramasından fəaliyyət göstərən online kazino oyunları ilə alət verirəm.

Əgər siz özünüzü zihnində bir casino müşahididirsizə düşünürsünüz, bizim ilk müşahidimiz Məhəmməd dir. Onun yaxşı bir səhifə olduğunu iddia edir. “Pin Up Azərbaycan Instagram hesabında tanınıb gələn bir kazino oynayış platforması var. Onların məlumat verilməsindən sonra mən online oynamaq istədiyim. Onların platformasının təşkilatı və xidmətləri mümkün qədər təminatlıdır. Mən bir çox sürətli şəxsiyyət və finansiyalarımın korunmasına əminsən. Onların platformasında bir https://online-casino-pin-up-az.com/ çox oyun var və mən bir çoxu onlardan keyif alırım.”

İkkinci müşahidimiz Şəms dir. Ona da bu platforma sevimli olduğunu söyləyir. “Mən Pin Up Azərbaycanun Instagram hesabından bu platforma tanınıb gəldim. Onların platformasının təşkilatı və xidmətləri mümkün qədər təminatlıdır. Mən bir çox oyunları keyif alırım və onların bonusları da çox sevimliyəm.”

Üçüncü müşahidimiz Rövşən dir. Onun da bu platforma sevimli olduğunu iddia edir. “Mən Pin Up Azərbaycanun Instagram hesabından bu platforma tanınıb gəldim. Onların platformasının təşkilatı və xidmətləri mümkün qədər təminatlıdır. Mən bir çox oyunları keyif alırım və onların bonusları da çox sevimliyəm.”

Ümumiyyət da, mən sizlərə Pin Up Azərbaycanun Instagram hesabından tanınıb gələn online kazino platformasını təklif edirəm. Bu platforma müşahidlərimizdən biri biri sevimli olduğunu iddia edir və onların platformasının təşkilatı və xidmətləri mümkün qədər təminatlıdır.

Pin Up Azərbaycan Instagramasında tanınırıq online kazino oyunlara ç oxuyun. Bu platformda təkəbbürü oyunlarınızı keçirin və müharibələrində qazanın!

Online kazino oyunlarını Pin Up Azərbaycan Instagram hesabından özəl şəkildə keçirin. Bu hesab, sizin için en təqdimat verici oyunları tanıtır.

Azərbaycan üçün özəl olaraq Pin Up Azərbaycan Instagram hesabından online kazino oyunlarına uğun xoş gəlmisiniz! Müştərilərimiz keyfiyyət almış olduqlarını öz işığında keçirin.

Design and Develop by Ovatheme